package com.ymm.lulutong.mapper;

import com.ymm.lulutong.entity.CargoOpsLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface ShipperCargoOpsLogMapper {
    /**
     * 插入货源操作记录
     *
     * @param cargoOpsLog 货源操作日志
     */
    void add(CargoOpsLog cargoOpsLog);

    /**
     * 根据主键返回货源操作记录
     *
     * @param logId 日志Id
     * @return 货源操作记录
     */
    CargoOpsLog getByLogId(Long logId);

    /**
     * 根据货主Id、货源Id和操作类型查找日志Id
     *
     * @param shipperId 货主Id
     * @param cargoId   货源Id
     * @param opsType   操作类型
     * @return 货源操作记录
     */
    Long getLogIdByShipperIdAndCargoIdAndOpsType(@Param("shipperId") Long shipperId, @Param("cargoId") Long cargoId, @Param("opsType") Integer opsType);

    /**
     * 更改日志的业务执行状态
     * @param logId 日志Id
     * @param executionStatus 业务执行状态
     */
    void updateExecutionStatusByLogId(@Param(("logId")) Long logId, @Param("executionStatus") Integer executionStatus);


    /**
     * 删除货源操作记录
     *
     * @param logId 记录Id
     */
    void deleteByLogId(long logId);
}
